Skip to content

corundum_netstack: Add support for 10 GbE implementation (for K26-based AD-GMSL2ETH-SL board) #1832

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

alin724
Copy link
Contributor

@alin724 alin724 commented Jul 11, 2025

PR Description

corundum_netstack: Add support for 10 GE implementation

PR Type

  • Bug fix (change that fixes an issue)
  • New feature (change that adds new functionality)
  • Breaking change (has dependencies in other repos or will cause CI to fail)
  • Documentation

PR Checklist

  • I have followed the code style guidelines
  • I have performed a self-review of changes
  • I have compiled all hdl projects and libraries affected by this PR
  • I have tested in hardware affected projects, at least on relevant boards
  • I have commented my code, at least hard-to-understand parts
  • I have signed off all commits from this PR
  • I have updated the documentation (wiki pages, ReadMe files, Copyright etc)
  • I have not introduced new Warnings/Critical Warnings on compilation
  • I have added new hdl testbenches or updated existing ones

@alin724 alin724 force-pushed the corundum_base_10G branch from 9d2f9a8 to 6a3502b Compare July 14, 2025 06:52
@alin724 alin724 closed this Jul 14, 2025
@alin724 alin724 force-pushed the corundum_base_10G branch from 6a3502b to b5c8559 Compare July 14, 2025 06:52
@alin724 alin724 reopened this Jul 14, 2025
@alin724 alin724 force-pushed the corundum_base_10G branch 2 times, most recently from 4271d21 to 32489d9 Compare July 14, 2025 07:26
alin724 added 3 commits July 14, 2025 10:28
Signed-off-by: alin724 <alin-tudor.sferle@analog.com>
Signed-off-by: alin724 <alin-tudor.sferle@analog.com>
Signed-off-by: alin724 <alin-tudor.sferle@analog.com>
@alin724 alin724 force-pushed the corundum_base_10G branch 2 times, most recently from 2ace2b1 to b31ec24 Compare July 14, 2025 07:55
@alin724 alin724 marked this pull request as ready for review July 14, 2025 07:55
@alin724 alin724 requested a review from IstvanZsSzekely July 14, 2025 07:56
@alin724 alin724 changed the title corundum_netstack: Add support for 10 GE implementation corundum_netstack: Add support for 10 GbE implementation (for K26-based AD-GMSL2ETH-SL board) Jul 14, 2025
// SPDX-License-Identifier: BSD-2-Clause-Views
/*
* Copyright (c) 2023 The Regents of the University of California
* Copyright (c) 2024 Analog Devices, Inc. All rights reserved
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please update the copyright year.

sfp_i2c_sda_t_reg <= sfp_iic_sda_t_w;
end

// reg [(IRQ_COUNT*IRQ_STRETCH)-1:0] irq_stretch = {(IRQ_COUNT*IRQ_STRETCH){1'b0}};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this comment can be deleted.

@@ -1,12 +1,13 @@
###############################################################################
## Copyright (C) 2025 Analog Devices, Inc. All rights reserved.
## Copyright (C) 2020-2024 Analog Devices, Inc. All rights reserved.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please update the copyright.

### SPDX short identifier: ADIBSD
###############################################################################

create_bd_cell -type hier corundum_hierarchy
current_bd_instance /corundum_hierarchy

create_bd_intf_pin -mode Slave -vlnv xilinx.com:interface:aximm_rtl:1.0 s_axil_corundum
create_bd_intf_pin -mode Slave -vlnv xilinx.com:interface:aximm_rtl:1.0 s_axil_application
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need this interface?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Considering the fact that the script already supports the connection to an application IP, even though it doesn't exist at this moment, I think it can be left inside the script, but it's creation must be conditional with the APP_ENABLE parameter as in the original script.

@@ -385,7 +547,7 @@ if {$APP_ENABLE == 1} {

ad_connect application_core/ptp_clock corundum_core/ptp_clock_app
ad_connect application_core/s_axil_ctrl s_axil_application

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove the whitespace.

C_GPIO_WIDTH 1 \
]
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add an empty line.

set STAT_DMA_ENABLE "0"
set STAT_AXI_ENABLE "0"
set STAT_INC_WIDTH "24"
set STAT_ID_WIDTH "12"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add an empty line.

@@ -1,6 +1,6 @@
// ***************************************************************************
// ***************************************************************************
// Copyright (C) 2024-2025 Analog Devices, Inc. All rights reserved.
// Copyright 2024 (c) Analog Devices, Inc. All rights reserved.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please update the copyright year and keep the old license text/format.

@@ -8,65 +8,78 @@ source $ad_hdl_dir/library/scripts/adi_ip_xilinx.tcl

global VIVADO_IP_LIBRARY

adi_ip_create ethernet
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please update the copyright year.

alin724 added 3 commits July 14, 2025 11:27
…rsion

Signed-off-by: alin724 <alin-tudor.sferle@analog.com>
Signed-off-by: alin724 <alin-tudor.sferle@analog.com>
Signed-off-by: alin724 <alin-tudor.sferle@analog.com>
@alin724 alin724 force-pushed the corundum_base_10G branch from b31ec24 to 34be9a9 Compare July 14, 2025 08:27
@@ -8,6 +8,8 @@ Corundum Ethernet Core

VCU118 <vcu118/index>

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove extra line.


Features
--------------------------------------------------------------------------------

* Supports 100G Ethernet-based systems that uses the CMAC core on the VCU118
board
* Supports 10/100 GbE implementations as follows: 100 GbE by leveraging on the Xilinx's CMAC IP core (on the VCU118 evaluation kit) and 10 GbE by using the Corundum's support (on the K26-based AD-GMSL2ETH-SL evaluation kit).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Split into multiple lines.

* - Name
- Description
* - :git-hdl:`library/corundum/ethernet_core/ethernet_core_k26.v`
- Verilog source for the Ethernet Core top module for the K26-based AD-GMSL2ETH-SL evaluation kit.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Split into multiple lines.


$git clone https://github.com/corundum/corundum.git
$git checkout ed4a26e2cbc0a429c45d5cd5ddf1177f86838914
====================://github.com/ucsdsysnet/corundum.git
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HTML build issue:
index.rst:244: ERROR: Content block expected for the "shell" directive; none found.
index.rst:245: WARNING: Explicit markup ends without a blank line; unexpected unindent.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CMAC dependencies should be left so that the make can verify their existence if 100G needs to be built.
Remove dependencies that are not related to the Ethernet core's build.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add the GUI customization commands for the 100G option.

Comment on lines +24 to +43
adi_if_define if_csr
adi_if_ports output -1 axil_csr_awaddr none 0
adi_if_ports output -1 axil_csr_awprot none 0
adi_if_ports output 1 axil_csr_awvalid none 0
adi_if_ports input 1 axil_csr_awready none 0
adi_if_ports output -1 axil_csr_wdata none 0
adi_if_ports output -1 axil_csr_wstrb none 0
adi_if_ports output 1 axil_csr_wvalid none 0
adi_if_ports input 1 axil_csr_wready none 0
adi_if_ports input -1 axil_csr_bresp none 0
adi_if_ports input 1 axil_csr_bvalid none 0
adi_if_ports output 1 axil_csr_bready none 0
adi_if_ports output -1 axil_csr_araddr none 0
adi_if_ports output -1 axil_csr_arprot none 0
adi_if_ports output 1 axil_csr_arvalid none 0
adi_if_ports input 1 axil_csr_arready none 0
adi_if_ports input -1 axil_csr_rdata none 0
adi_if_ports input -1 axil_csr_rresp none 0
adi_if_ports input 1 axil_csr_rvalid none 0
adi_if_ports output 1 axil_csr_rready none 0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This interface seems to be the AXI4Lite interface. What's the reason of re-creating the interface?

### SPDX short identifier: ADIBSD
###############################################################################

create_bd_cell -type hier corundum_hierarchy
current_bd_instance /corundum_hierarchy

create_bd_intf_pin -mode Slave -vlnv xilinx.com:interface:aximm_rtl:1.0 s_axil_corundum
create_bd_intf_pin -mode Slave -vlnv xilinx.com:interface:aximm_rtl:1.0 s_axil_application
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Considering the fact that the script already supports the connection to an application IP, even though it doesn't exist at this moment, I think it can be left inside the script, but it's creation must be conditional with the APP_ENABLE parameter as in the original script.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants